import {
    createStore
} from 'vuex'


const store = createStore({
    // ... 你的state, mutations, actions, getters  
    // state：提供唯一的公共数据源，所有共享的数据都要统一放到store中的state存储
    state() {
        return {
            agree: false
        }
    },
    // mutations 同步变更state数据，传多个参数需要用对象的方式
    mutations: { //.commit
        increment(state) {

        }

    },
    // getters 用于对store中的已有数据进行加工处理形成新的数据，如果store中的数据发生变化，
    getters: { //.getters
        doneTodos(state) {}
    },
    // actions 异步变更state数据
    actions: {
        increment(context) {
            context.commit('increment')
        }
    },

})
const uniStoragePlugin = (store) => {
    // 初始化时从uni-app的存储中恢复状态  
    let savedState = null;
    try {
        const stateStr = uni.getStorageSync('vuex');
        if (stateStr) {
            savedState = JSON.parse(stateStr);
        }
    } catch (e) {
        // 处理错误  
    }
    if (savedState) {
        store.replaceState(savedState);
    }

    // 当状态变化时保存到uni-app的存储中  
    store.subscribe((mutation, state) => {
        uni.setStorageSync('vuex', JSON.stringify(state));
    });
};

// export default uniStoragePlugin;
export default store